Visualizing time metric database

ABSTRACT

Disclose herein are applications and platforms for streamlined production of charts and reports from databases containing time series datasets and/or timestamped data. The applications described herein may employ dynamically retrieve data from data centers to quickly provide options to the user. The platform further allows configuration of the charts and/or reports by providing lists of metrics that may be available in the selected data, and lists of transforms that may be applied to the data. The application may employ dynamic user interfaces, which provide processing of the received time series datasets in a data agnostic manner. As a result, the systems and methods described herein may allow generating charts and reports using a streamlined workflow.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 15/815,498, filed Nov. 16, 2017, which claimspriority from and the benefit of U.S. Provisional Application Ser. No.62/570,491, entitled “Visualizing Time Metric Database”, filed Oct. 10,2017, both of which are hereby incorporated by reference in theirentirety for all purposes.

BACKGROUND

The present disclosure relates generally to systems and methods formanaging and visualizing databases. More specifically, the presentdisclosure is related to systems and methods that provide interactivegeneration of visual reports from databases including time series data.

This section is intended to introduce the reader to various aspects ofart that may be related to various aspects of the present disclosure,which are described and/or claimed below. This discussion is believed tobe helpful in providing the reader with background information tofacilitate a better understanding of the various aspects of the presentdisclosure. Accordingly, it should be understood that these statementsare to be read in this light, and not as admissions of prior art.

Certain organizations may employ computer resources to obtaininformation from events or measurements collected over a period of time.The collected data may include multiple time series datasets that may bestored in a repository, such as local database, a distributed database,a remote data centers, a cloud computing storage environment, or anyother type of suitable storage. Due to the ability to continuouslycollect data regarding events and measurements, the collected data mayinclude a number of time series datasets, such that each time seriesdataset may include a number of timestamped entries. Such type of datamay be particularly difficult to analyze due to its volume of datapoints or samples and, as a result, information from time metricdatabase may not be useful in its raw form. As such, analysis of thetime series datasets may be employed for obtaining charts and/or reportsthat provide discernible information from the collected data. However,these analyses may be cumbersome due to the lack of tools geared towardsanalysis of databases including time series datasets.

SUMMARY

A summary of certain embodiments disclosed herein is set forth below. Itshould be understood that these aspects are presented merely to providethe reader with a brief summary of these certain embodiments and thatthese aspects are not intended to limit the scope of this disclosure.Indeed, this disclosure may encompass a variety of aspects that may notbe set forth below.

Methods and systems described herein are related to platforms andapplications that may create reports or charts from time seriesdatasets, in a streamlined manner. To that end, the systems mayintegrate many processes into a single platform and tool that mayinspect the database or the data sources and provide a list of availableinformation. The applications may, for example, allow grouping ofmultiple time series datasets based on a metric or metadata associatedwith the metric. The applications may also provide the user with aseries of options related to mathematical operations or other processingoperations that can be applied to the datasets. The applicationsdescribed herein may employ a dynamic user interface for selecting thedatabase or datasets, and to configure the charts and/or reports. Theability to use the dynamic user interface increases the speed ofgeneration of reports, and may enable automated production of chartsand/or reports.

In a first embodiment, a system may have a non-transitory memory coupledto a plurality of processors. The processors may execute instructionsfrom the memory for retrieving tables from a data source. The tables mayinclude grouped metrics, such that each metric may have multiple timeseries datasets. The processor may also display a list of the tables viaan electronic display, and receive a selection of a table from a uservia an input device. Upon receiving the selection, the processor maydynamically display visualization templates, grouped metrics that may bein the table, and transform operations for analyzing data. The processormay receive selections from the user related to a grouped metric, atransform operation, and/or a visualization template via the inputdevice. Based on the selections, the processor may generate a timeseries chart, and display the chart via the electronic display.

In another embodiment, another system may have a non-transitory memoryand multiple processors. The processors may be coupled to a datacenter,and may perform instructions stored in the memory. The processor mayreceive a selection of a data source from a client device via an inputdevice. In response, the processor may retrieve tables from the selecteddata source based on the selection. The tables may include groupedmetrics and each metric of the grouped metrics may have multiple timeseries datasets. The processors may provide the table names to theclient device and may receive a selection of a table. Upon receiving theselection of the table via the input device, the processor maydynamically provide visualization templates, grouped metrics that may bein the table, and transform operations as determined from the type ofdata contained in the table to the client device. The processor mayreceive selections for a grouped metric, a transform operation, and avisualization template, and may then, in turn, provide a time serieschart based on these selections.

In yet another embodiment, a method for dynamic configuration of timecharts may include causing a processor of a client device to retrieve aset of tables from a data source in a datacenter. The tables may includegrouped metrics and each metric of the grouped metric may have multipletime series datasets. The method may also include causing the processorto display a list of the retrieved tables and for receiving a tableselection from a user through an input of the client electronic device.The method may also include dynamically displaying visualizationtemplates, grouped metrics available from the selected tables, andtransforms that perform a mathematical operation on the data associatedwith the metric in the electronic display. Upon receiving selections ofthe visualization template, the metric, and the transforms via an inputdevice, the method may include providing the client device with the timeseries chart based on the metric, via the electronic display.

BRIEF DESCRIPTION OF THE DRAWINGS

Various aspects of this disclosure may be better understood upon readingthe following detailed description and upon reference to the drawings inwhich:

FIG. 1 is a block diagram of a generalized distributed computing systemutilizing a platform in the context of a cloud service and may providestorage, visualization, and/or report generation from time series data,in accordance with an embodiment;

FIG. 2 is a block diagram of a computing device utilized in thedistributed computing system of FIG. 1, in accordance with anembodiment;

FIG. 3 is a block diagram of a platform that may be used in conjunctionwith a computing system, such as the computing system of FIG. 1, toprovide storage, visualization and/or report generation from time seriesdata, in accordance with an embodiment;

FIG. 4 is an illustrative diagram of an example of time series data thatmay be used by a platform, such as the platform of FIG. 3, in accordancewith an embodiment;

FIG. 5 is a diagram of a dynamic report user interface (UI) that may beused to configure and generate visualization and/or reports from timeseries data, in accordance with an embodiment;

FIG. 6A is a first diagram that illustrates a panel visualizationprovided by the dynamic report UI of FIG. 5, in accordance with anembodiment;

FIG. 6B is a second diagram that illustrates the panel visualization ofFIG. 6A, provided by the dynamic report UI of FIG. 5, in accordance withan embodiment;

FIG. 6C is a third diagram that illustrates the panel visualization ofFIG. 6A, provided by the dynamic report UI, in accordance with anembodiment;

FIG. 7A is a first diagram that illustrates a tabbed panel visualizationprovided by a dynamic report UI, in accordance with an embodiment;

FIG. 7B is a second diagram that illustrates the tabbed panelvisualization of FIG. 7B that may be provided by a dynamic report UI, inaccordance with an embodiment;

FIG. 8 is a flow chart of a method to generate visualization and/orreports from stored time series data in a platform such as the platformof FIG. 3, in accordance with an embodiment;

FIG. 9A is a first diagram that illustrates a transform configurationvisualization that may be provided by a dynamic report UI, in accordancewith an embodiment;

FIG. 9B is a second diagram that illustrates the transform configurationvisualization of FIG. 9A that may be provided by a dynamic report UI, inaccordance with an embodiment;

FIG. 9C is a third diagram that illustrates a transform configurationvisualization of FIG. 9A that may be provided by a dynamic report UI, inaccordance with an embodiment; and

FIG. 10 is a flow chart of a method to configure transforms and/orreports from stored time series data with metrics, in accordance with anembodiment.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

One or more specific embodiments will be described below. In an effortto provide a concise description of these embodiments, not all featuresof an actual implementation are described in the specification. Itshould be appreciated that in the development of any such actualimplementation, as in any engineering or design project, numerousimplementation-specific decisions must be made to achieve thedevelopers' specific goals, such as compliance with system-related andbusiness-related constraints, which may vary from one implementation toanother. Moreover, it should be appreciated that such a developmenteffort might be complex and time consuming, but would nevertheless be aroutine undertaking of design, fabrication, and manufacture for those ofordinary skill having the benefit of this disclosure.

Many enterprises make use of information obtained from time series datato improve management of enterprise resources and/or policies. Examplesof time series datasets include weekly sales revenue and sales volumesin stores, or daily fuel consumption and mileage in a fleet of cars. Dueto the potential for the large volume of the time-stamped data, certainanalyses, such as grouping or subgrouping of datasets, sorting the typeof data, selecting a time range, and/or performing mathematicaloperations, may be performed to reduce data volume and facilitateextraction of actionable information from the raw collected data.Visualization of data in the form of charts may further improveobtaining information and generating automated reports. Performance ofthese analyses and visualizations may be cumbersome due to the number ofdifferent tools that may be employed to accomplish the process. As anexample, a user may employ one tool to manage storage, a separate toolfor parsing and/or extracting data, a third tool for performingoperations, a fourth tool for generating charts, and a fifth tool forproducing a report that include the charts. As a further complexity, thediversity of data storage systems and sensing methods may furtherincrease the challenge of obtaining information from time series data.Moreover, time series datasets stored in different formats may usedifferent management and/or data extraction tools.

The fragmentation in the tools for information extraction from timeseries data may decrease the speed of the production of charts and/orreports from acquired data, resulting in less available actionableinformation. As an example, a corporation that may have multiple storesmay collect daily sales volumes of its available products in the manylocations. This collected data may have potential to provide informationrelated to geographical or temporal trends, but that information is notreadily available without the creation of charts and/or reports dues tothe volume of data points. In the example, automated and/or streamlinedgeneration of charts or reports from the collected time series datasetsmay allow the corporation to notice a long-term decline, a regionalpreference, or a seasonable trend for a particular product, and adjustits purchases in an integrated manner.

This disclosure relates to platforms and applications that integrate themany processes involved in obtaining actionable information in anintegrated manner. Certain embodiments include systems that receive timeseries data from diverse data sources, and import the data into anintegrated time metric database. Certain embodiments include systemsthat may retrieve data from a time metric database or other data sourcesand provide a dynamic user interface (UI) for a user to select data fordynamic chart and/or report generation. The dynamic UI may further allowa user to select analyses routines and data chart types based on thetype of data retrieved from the database. As detailed below, theplatforms and applications may provide an integrated data process thatmay be used with a wide variety of time data series. By making use ofthese platforms and applications, enterprises may increase the amount ofactionable information obtained from the stored time series data.

With the preceding in mind, and by way of introduction, FIG. 1 is ablock diagram of a system 100 that utilizes a distributed computingframework, which may be used to implement one or more of the platformsand/or applications described herein. As illustrated in FIG. 1, a client102 communicates with a platform, such as a cloud service 104, over acommunication channel 106. The client 102 may include any suitablecomputing system. For instance, the client 102 may include one or morecomputing devices, such as a mobile phone, a tablet computer, a laptopcomputer, a notebook computer, a desktop computer, a wearable device, atelemetry system, or any other suitable computing device or combinationof computing devices. The client 102 may include client applicationprograms running on the computing devices. The client 102 may includesensors or systems capable of generating timed or time-stamped data. Theclient 102 can be implemented using a single physical unit or acombination of physical units (e.g., distributed computing) running oneor more sensor or client application programs. Furthermore, in someembodiments, a single physical unit (e.g., server) may run multipleclient application programs simultaneously.

The platform 104 may include any suitable number of computing devices(e.g., computers) in one or more locations that are connected togetherusing one or more networks. For instance, the platform 104 may includevarious computers acting as servers in datacenters at one or moregeographic locations where the computers communicate using networkand/or Internet connections. The communication channel 106 may includeany suitable communication mechanism for electronic communicationbetween the client 102 and the platform 104. The communication channel106 may incorporate local area networks (LANs), wide area networks(WANs), virtual private networks (VPNs), cellular networks (e.g., longterm evolution networks), and/or other network types for transferringdata between the client 102 and the platform 104. For example, thecommunication channel 106 may include an Internet connection when theclient 102 is not on a local network common with the platform 104.Additionally, or alternatively, the communication channel 106 mayinclude network connection sections when the client and the platform 104are on different networks or entirely using network connections when theclient 102 and the platform 104 share a common network. Although only asingle client 102 is shown connected to the platform 104, it should benoted that the platform 104 may connect to multiple clients (e.g., tens,hundreds, or thousands of clients).

Through the platform 104, the client 102 may connect to various deviceswith various functionality, such as gateways, routers, load balancers,databases, application servers running application programs on one ormore nodes, or other devices that may be accessed via the platform 104.For example, the client 102 may connect to an application server 107and/or one or more databases 108 via the platform 104. The applicationserver 107 may include any computing system, such as a desktop computer,laptop computer, server computer, and/or any other computing devicecapable of providing functionality from an application program to theclient 102. The application server 107 may include one or moreapplication nodes running applications such as the time seriesconfiguration and report generation system described herein, whosefunctionality is provided to the client locally or via the platform 104.The application nodes may be implemented using processing threads,virtual machine instantiations, or other computing features of theapplication server 107. Moreover, the application nodes may store,evaluate, or retrieve data, such as time series data, from the databases108 and/or a database server.

The databases 108 may be arranged as a part of a network 112, which mayhave additional assets and services 110, which may include computersand/or other devices on the network 112 (or group of networks) separatefrom or contiguous with the cloud service 104 resources. Network 112 mayinclude a gateway server 126 that may provide access via a communicationchannel 103 between the network 112, the client 102, and the platform104. Through the gateway server 126, the platform 104 or the client 102may access to the assets and services 110 in the network 112, such asprinters 114, routers and/or switches 116, load balancers 118, virtualsystem 120, storage device 122, and/or connected devices 124. As such,the assets and services 110 may include a combination of physicalresources or virtual resources. The virtual resources and/or the otherconnected devices may operate application for time series dataretrieval, visualization, and report generation using a dynamicapplication in the client 102.

A database 108 that is a part of the network 112 may contain a series oftables containing time series data (e.g., time series datasets) whichmay be stored in a storage device 120. The time series datasets may becollected by the client 102 or by a connected device 124. Anapplication, which may operate in a processor of the server 126, or inthe virtual system 120, may collect the data and store in the tables ofthe database. The application may also add a timestamp and/or metadatawhich may include a data source and/or a metric type. The metadata maybe used for grouping when generating charts and reports, as detailedbelow. The datasets may be also received from through the cloud service104 from another device as files or external databases, and may beimported into database 108.

Although the system 100 is described as having the application servers107, the databases 108, the gateway server 126, and the like, it shouldbe noted that the embodiments disclosed herein are not limited to thecomponents described as being part of the system 100. Indeed, thecomponents depicted in FIG. 1 are merely provided as example componentsand the system 100 should not be limited to the components describedherein. Instead, it should be noted that other types of server systemsmay implement the knowledge applications, the knowledge databases, andthe search systems described herein. Further, it should be noted thatserver systems described herein may communicate with each other via anumber of suitable communication protocols, such as via wiredcommunication networks, wireless communication networks, and the like.In the same manner, the client 102 may communicate with a number ofserver systems via a suitable communication network without interfacingits communication via the platform 104.

In any case, to perform one or more of the operations described herein,the client 102, the application server 107, the gateway server 126, andother server or computing system described herein may include one ormore of the computer components depicted in FIG. 2. FIG. 2 generallyillustrates a block diagram of example components of a computing device200 and their potential interconnections or communication paths, such asalong one or more busses. As briefly mentioned above, the computingdevice 200 may be an embodiment of the client 102, the applicationserver 107, a database 108, other servers or processor-based hardwaredevices present in the platform 104, a device running the gateway server126, and/or any of the assets and services 110. As previously noted,these devices may include a computing system that includes multiplecomputing devices and/or a single computing device, such as a mobilephone, a tablet computer, a laptop computer, a notebook computer, adesktop computer, a server computer, and/or other suitable computingdevices.

As illustrated, the computing device 200 may include various hardwarecomponents. For example, the device includes one or more processors 202,one or more busses 204, memory 206, input structures 208, a power source210, a network interface 212, a user interface 214, and/or othercomputer components useful in performing the functions described herein.The one or more processors 202 may include a processor or othercircuitry capable of performing instructions stored in the memory 206 orin other accessible resources. For example, the one or more processors202 may include microprocessors, system on a chip (SoCs), or any otherperforming functions by executing instructions stored in the memory 206.Additionally or alternatively, the one or more processors 202 mayinclude application-specific integrated circuits (ASICs),field-programmable gate arrays (FPGAs), and/or other devices designed toperform some or all of the functions discussed herein without callinginstructions from the memory 206. Moreover, the functions of the one ormore processors 202 may be distributed across multiple processors in asingle physical device or in multiple processors in more than onephysical device. The one or more processors 202 may also includespecialized processors, such as a graphics-processing unit (GPU).

The one or more busses 204 include suitable electrical channels toprovide data and/or power between the various components of thecomputing device. For example, the one or more busses 204 may include apower bus from the power source 210 to the various components of thecomputing device. Additionally, in some embodiments, the one or morebusses 204 may include a dedicated bus among the one or more processors202 and/or the memory 206. The memory 206 may include any tangible,non-transitory, and computer-readable storage media. For example, thememory 206 may include volatile memory, non-volatile memory, or anycombination thereof. For instance, the memory 206 may include read-onlymemory (ROM), randomly accessible memory (RAM), disk drives, solid-statedrives, external flash memory, or any combination thereof. Althoughshown as a single block in FIG. 2, the memory 206 can be implementedusing multiple physical units in one or more physical locations. The oneor more processors 202 access data in the memory 206 via the one or morebusses 204.

The input structures 208 provide structures acquire data or allow inputof data and/or commands to the one or more processors 202. For example,the input structures 208 include a positional input device, such as amouse, touchpad, touchscreen, and/or the like. The input structures 208may also include a manual input, such as a keyboard and the like.Positional input devices or manual input devices may allow collection oftime data via user interaction. The input structures 208 may alsoinclude sensors for autonomous collection of time data related with userand/or environment around computing device 200, such as health monitors,global positioning system (GPS) location device, thermometers,accelerometers, gyroscopes, and other devices. Input structures may alsocollect data that to monitor the computing device 200 itself. Theseinput structures 208 may be used to input data and/or commands to theone or more processors 202 via the one or more busses 204.

The power source 210 can be any suitable source for power of the variouscomponents of the computing device 200. For example, the power source210 may include line power and/or a battery source to provide power tothe various components of the computing device 200 via the one or morebusses 204. The network interface 212 is also coupled to the processor202 via the one or more busses 204. The network interface 212 includesone or more transceivers capable of communicating with other devicesover one or more networks (e.g., the communication channel 106). Thenetwork interface may provide a wired network interface, such asEthernet, or a wireless network interface, such an 802.11, Bluetooth,cellular (e.g., LTE), or other wireless connections. Moreover, thecomputing device 200 may communicate with other devices via the networkinterface 212 using one or more network protocols, such as TransmissionControl Protocol/Internet Protocol (TCP/IP), power line communication(PLC), Wi-Fi, infrared, and/or other suitable protocols. Networkinterface 212 may be used to couple the computing device 200 forcollection of remote time series data, such as telemetry system. A userinterface 214 may include a display that is configured to display imagestransferred to it from the one or more processors 202. The display mayinclude a liquid crystal display (LCD), a cathode-ray tube (CRT), alight emitting diode (LED) display, an organic light emitting diodedisplay (OLED), or other suitable display. The user interface 214 may beused to provide reports and dynamic UI, such as the ones describedherein. In addition, and/or alternative to the display, the userinterface 214 may include other devices for interfacing with a user. Forexample, the user interface 214 may include lights (e.g., LEDs),speakers, and the like.

An example of a platform 300 that may be used along with the system 100to facilitate generation visualization and/or reports from time seriesdata, as discussed herein, is illustrated in FIG. 3. The integratedplatform 300 may include a database 108, which may store and/or managemultiple datasets, including time datasets. As discussed above, thedatabase may be located in a local or a remote server, and may bedistributed across multiple locations. The database may obtain data froma number of sources, such as sensors 312, event trackers 314, orexternal files 316.

Sensors 312 may be electronic devices that are capable of collectingphysical data. Examples of sensors 312 may include accelerometers,global positioning system (GPS) sensors, gyroscopes, altimeters,electrical detectors, radio frequency identifiers (RFID), hearth ratemonitors, step counters, and other electronic devices that may convertphysical measurements to digital data. The sensors 312 may have internalclocks and may provide timestamped data directly to the database 108, ormay employ an internal clock of a coupled electronic device to createtimestamped data related to the physical measurement and to provide thedata to the database 108.

Event trackers 314 may be electronic devices that are capable ofrecording a time of an event, as well as metadata associated to it.Examples of the event trackers 314 include automated telephone logapplications in a call center, bank transaction application trackers,stock tickers, and other systems capable of creating time stamped data.The event trackers 314 may store the timestamped data directly in thedatabase 308. The database 108 may also be populated from files 316 orother data sources 318, such as other external databases. Data obtainedfrom files 316 or other data sources 318 may be imported and/or adaptedvia data filters before being entered in the database 108.

The system 300 may also include a report generating application 302. Thereport generating application 302 may be capable of retrieving data fromthe database 108 and, through a dynamic user interface (UI), may allow auser to configure charts and/or reports 320 from time series datasetsfrom any of the variety of sources, in a data agnostic manner. Thecharts and/or reports 320 generated may include metric-based groupingand/or sorting, and may include transformations (i.e., mathematicaloperations over data), as detailed below.

The diagram in FIG. 4 illustrates a table 350 that illustrate timeseries datasets that may be used to generate charts and/or reports asdiscussed herein. The table 350 is described to illustrate a possibledata structure for a time metric database. Time metric databases includedatabases that may use metrics to organize time series datasets, whichmay be used by a report generating application 302. As discussed herein,a metric is a property of a time series dataset that may be used toprovide a relationship between the dataset and the type of datameasured. It should be appreciated that the data structure illustratedin the table 350 is not the only possible data structure for the datastructures in the applications and platforms described, such as system300 of FIG. 3. In fact, time series datasets or time metric databasesmay be stored with other data structures, including multi-tablerelational databases (e.g., structured query language or SQL databases)or non-relational databases (e.g., NoSQL databases), or any otherdatabase that may be addressed by employ a metric. Moreover, timedatasets that are not arranged in a time metric database, may befiltered and/or imported into a time metric database structure byemploying available metadata to determine a metric.

The example table 350 shows 4 different time series datasets 352A, 352B,352C, and 352D. Each dataset may have multiple time entry records 354,and each record may be associated with a timestamp. Each dataset 352A-Dmay also have an identifier 356, which may be a unique identifier or akey. As discussed above, time series datasets may be associated withdifferent types of data, as denoted by the metric identifier 358. In theexample, time series datasets 352A and 352B are associated with a“SPEED” metric and time series datasets 352C and 352D are associatedwith an “ALTITUDE” metric. In the example, the time series datasets wereobtained from two different sensors, and this information may be storedby a sensor identifier 360. Thus, in the example, time series dataset352A and 352C provides, respectively, data related to the speed andaltitude associated with sensor with identifier 360 “0,” and time seriesdatasets 352B and 352D provides, respectively, data related to the speedand altitude associated with sensor identifier 360 “1.” Due to thisorganization of the time series datasets, a report generatingapplication 302 may retrieve datasets as grouped by a metric 358, or asensor identifier 360. As discussed above, any data structure that mayprovide access to datasets in the above-described manner may beemployed.

The diagram in FIG. 5 illustrates an example of a dynamic user interface400 (UI) that may generate charts and/or reports based on time seriesdatasets in a report generating application 302, such as the oneillustrated in FIG. 3. Dynamic user interface 400 may have a reportpanel 402, which may include a dynamically generated chart 404. Reportpanel may also include a text section 405. The dynamically generatedchart 404 may have a time axis 406, which may be populated by adjustmentof a time range 430 during chart configuration, as discussed below. Thedynamically generated chart 404 may also include a primary axis 408,which may be populated based on a selected metric, as discussed below.Primary axis 408 may provide reference values for a curve 410 associatedwith the selected metric. The dynamically generated chart 404 may alsoinclude a secondary axis 412, which may be populated based on a secondselected metric. The second selected metric may be associated with asecond curve 414. Note that, if the range of values covered by curves410 and 414 are similar, a single axis (e.g., primary axis 408) may beused to provide reference to both curves.

The dynamically generated chart 404 may be configured by a dynamicconfiguration panel 422. The dynamic configuration panel 422 maydynamically display a series of choices for the time series datasets.The choices may be based on data that was dynamically retrieved or basedon user selections via the dynamic configuration panel 422. Examples ofdynamic behavior for configuration panel 422 are discussed below, withreference to FIGS. 6A, 6B, 6C, 7A, 7B, 9A, 9B, and 9C. The dynamicconfiguration panel 422 may enable the user to interact with thedynamically generated chart 404 through UI elements. While the UIelements described herein include combo boxes, selection boxes, radiobuttons, and text boxes, it should be understood that other UI elementsmay be used to provide the dynamic interaction. In the illustratedexample, configuration panel 422 may include a data source selection UIelement 424, with which a user may select a data source. The selecteddata source may be, for example, a data source or an imported file. Thereport generating application 302 may retrieve from the selected datasource a list of available tables, which may populate a table selectionUI element 426.

After the user selects a table via table selection UI element 426, thereport generating application 302 may determine that the selected tableincludes time series datasets and, as a result, the dynamicconfiguration panel 422 may display choices associated with productionof charts for time series datasets. For example, a visualizationselection UI element 428 may provide a selection of types of plots thatmay be generated in the report panel 402. For example, the charts mayinclude line charts, bar/stick charts, area charts, spline charts,time-step charts, or any chart that may be appropriate for displayingtimestamped data. The dynamic configuration panel 422 may provide a timerange UI element 430, which may allow a user to select a time range forthe chart. This selection may be used to populate time axis 406. In someembodiments of the time range UI element 430, the user may select arelative time range (e.g., a retrospective chart, a time range relativeto a specific instant), or an absolute time scale.

If the report generating application 302 determines that the tableselected via table selection UI element 426 is part of a time metricdatabase or that it includes multiple metrics, the dynamic configurationpanel 422 may provide metric configuration options, such as metricconfiguration panels 432A and 432B. The metric configuration panel 432Amay provide a list of metrics via a metric selection UI element 433A,which may be populated by the report generation application 302 based onthe metrics available from the selected table. The metric configurationpanels 432A and 432B may also include transform panels, such astransform panels 434A, 434B and 434C. A transform panel 434A may includea list of available transforms (e.g., mathematical operations) that maybe applied to the time series dataset. A non-exhaustive list of examplesof transforms include Average, Minimize, Maximize, Count, Sum, Log,Median, Standard Deviation, Envelope, Top, Bottom, Add, Subtract,Multiply, Divide, Interpolate, Percentiles, Resample, Filter, andPartition. Note that certain transforms, such as Top, Bottom, Divide, orResample, may accept additional parameters. If such transform isselected, the transform panel 434A may provide a parameter input UIelement 435. For example, upon selection of the Divide transform in atransform panel 434, the parameter input UI element 435 may be displayedto accept the denominator of the Divide transform.

A user may interact with the dynamically generated chart 404 to reviewthe data, through a data drill-down process. Taking the illustratedchart of FIG. 5 as an example, if curve 410 is associated with themetric configured by metric configuration panel 432A (i.e., if curve 410is an average of the top 5 speeds in the example), a user may clickcurve 410 and the panel may exhibit additional information related tothat data. For example, selecting curve 410 may lead to undoing thelatest selected transform, which is the “Average” transform anddisplaying the top 5 curves in the dynamically generated chart 404. Insome systems, selective curve 410 may lead to displaying in text section405 a table with the data points of curve 410. The specific responsethat results from interaction with the curve may be programmed by theconfiguration of drill-down paths. Moreover, the configuration of thedrill-down paths may take into account monitoring of UI actions. Forexample, hovering a cursor over curve 410 may lead to a display of adata point and dynamic changes to text section 405 displaying quantitiesassociated with curve 410, while clicking on curve 410 may lead to adisplay of a new canvas with the a different data drill-down behavior.

An example of a dynamic interaction in dynamic configuration panel 422is illustrated in the series of FIGS. 6A, 6B, and 6C. As a user beginsto generate a new report or a new chart within a report using the reportgenerating application 302, the dynamic configuration panel 422 maypresent a canvas with the data source selection UI element 424, asillustrated in FIG. 6A. As discussed above, the user may select adatabase, a file, or an import filter containing data for the chartand/or report. The report generating application 302 may inspect theselected data source, and retrieve a list of tables from the data source(e.g., database 108). The application may also create a table selectionUI element 426 in the dynamic configuration panel 422 and populate thetable selection UI element 426 with the retrieved list of tables, asillustrated in FIG. 6B. After the user selects a table through the tableselection UI element 426, the report generating application 302 mayinspect the contents of the data in the table. If the selected tablecontains time series datasets, the dynamic configuration panel 422 mayprovide a visualization selection UI element 428 that allows the user toeasily choose a chart type that can be used to represent or analyze timeseries data. The dynamic configuration panel 422 may also provide a timerange UI element 430 for the user to delimit time boundaries for thegenerated chart. A dynamic configuration panel 422 showing thevisualization selection UI element 428 and the time range UI element 430in response to a table selection is illustrated in FIG. 6C. Based on theselections in the dynamic configuration panel 422, the report generatingapplication 302 may generate a chart, such as the dynamically generatedchart 404, and display it in the report panel 402, as illustrated inFIG. 5. In some embodiments, a user may also change selection in thedynamic configuration panel 422, and may see the selected changesdynamically reflected in the dynamically generated chart 404automatically.

The examples in FIG. 5 and FIGS. 6A-C illustrate a dynamic configurationpanel 422 that may provide a single panel interaction, in which the newelements are added to the panel as the user makes selection. Theillustrations in FIGS. 7A and 7B show another example of a dynamicinteraction in a dynamic tabbed configuration panel 522, which may beused by the report generating application 302. The tabbed configurationpanel 522 may have multiple tabs, with one tab provided for one or fewselection UI elements. Navigation in the tabbed configuration panel 522may be assisted by a navigation UI element 524A, which may employ abreadcrumb navigation interface (i.e., a navigation interface thatincludes a sequence of available tabs in the tabbed configuration panel522). Navigation may also be assisted by navigation controllers 526, asillustrated. The illustrated example in FIG. 7A illustrate aninteraction in which a user is provided with a table selection UIelement 426 in a “Table” tab of the tabbed configuration panel 522, asindicated by navigation UI element 524A. Following the selection, theuser may be provided with a visualization selection UI element 428 in avisualization tab of the tabbed configuration panel 522, as indicated bythe navigation UI element 524B.

The dynamic interactions illustrated in FIGS. 6A-C, 7A, and 7B may beprovided by a report generating application 302 performing the method550 of FIG. 8. Method 550 may have a box 552 for retrieving a list oftables available from a data source, which may have been selected by auser. A box 554 may receive a table selection and parse the data sourceto inspect the type of data in the data selection. In a decision box556, the report generating application 302 may determine if the tableincludes a time metric database (e.g., includes time series datasetsand/or if it is organized by metrics). If the data in the table does notinclude time series datasets, the report generating system 302 mayperform the box 558 to generate a report that may be appropriate for thetype of data parsed.

If the data in the table includes time series datasets, the reportgenerating system 302 may, through the dynamic interface describedabove, provide selections related to visualization in box 560. Theselections may be related to time ranges and/or type of charts. In a box562, the report generating system 302 may provide selections for metricsand/or transforms, as detailed below. The selections in box 562 may beused to generate curves associated with one or more metrics that may beavailable in the selected table. The selections may also allow easymanipulation of the curves based on the use of transforms. Based on theselections made in boxes 554, 560, and/or 562, the report generatingsystem 302 may generate a chart or a report in box 564.

The diagrams in FIGS. 9A-C illustrate a dynamic interaction forselection of metrics and/or transforms, which may be used in aconfiguration panel such as dynamic configuration panel 422 and/ortabbed configuration panel 522. In FIG. 9A, the user may be providedwith a metric selection UI element 433, which includes a list ofavailable metrics in the selected table. After the user performs theselection, the configuration panel may display a transform panel 434D.The transform panel 434D may depict all available transforms and/or alist of transforms that is appropriate for the selected metric. Forexample, an “Average” transform may be disabled (e.g., hidden) if theselected metric has less than two datasets, while a “Log” transform maybe disabled if the selected metric has a non-positive data entry. Inresponse to a transform selection, the configuration panel 434D mayfollow-up with a parameter input UI element 435 to configure theselected transform. The configuration panel 432 may also provide asecond transform panel 434E, which may perform a cascaded transform(i.e., a second transform that may operate on datasets obtained as aresult of the transform selected with transform panel 434D). In certainembodiments, the chart may be automatically updated in response tochanges to selections in the configuration panel 432.

The dynamic interaction for configuration of metrics illustrated inFIGS. 9A-C may be provided by a report generating application 302performing method 650 of FIG. 10. Method 650 may have a box 652 toreceive a selection of a metric from a list of metrics that may be in atable. Based on the selected metric, the report generating application302 may determine a list of appropriate transforms and provide them tothe user in a box 654. If a selected transform may be configured byadditional parameters, as discussed above, the report generatingapplication 302 may request the parameters via the user interface in box656. The time chart displaying the datasets as processed by thetransforms may be updated in box 658. Moreover, following the chartupdate, the report generating application 302 may provide the user witha new selection for a metric (box 700), or for an available transform.

As discussed above, the interactions provided by the user interface,such as the dynamic interactions illustrated in FIGS. 6A-C, 7A and 7B,and 9A-C, may include multiple displays and/or panels, which may beassociated with steps of the production of the report. Duringconfiguration, a user may create a hyperlink (e.g., a URL), which may beassociated with a particular panel in the report creation. Thus, if auser stores a hyperlink, that hyperlink may be later used as an entrypoint to recreate or reconfigure a report without requiring repetitionof the initial steps. Moreover, the hyperlink may be shared, allowing amore collaborative production process. As an example, a user that isconfiguring metric, such as in FIGS. 9A-C, may select a speed metric,but may wish to produce multiple charts, a first one using the “Average”transform, and a second one with the “Median” transform. Such user maygenerate a hyperlink associated with the panel illustrated in FIG. 9B,and generate a first chart using the “Average” transform. Aftergenerating the first chart, the user may enter and/or click thegenerated hyperlink and be presented with the panel of FIG. 9B withouthaving to repeat previous steps (e.g., steps in FIG. 9A, or in FIGS.6A-C). The user may also send the hyperlink to other administrators forcreation of different panels. The use of hyperlinks during reportgeneration, as described herein, allows a more dynamic and moreinteractive user experience, as it allows users from leaving andre-entering the report generation system at any point, and allowssharing of the process with other users.

The platform 300 may include, along with report generating system 302described herein, other tools and/or applications for managing and usingperformance and analytics reporting. Other application and/or featuresinclude, but are not limited to, interfaces for configuration of theplatform (e.g., available data sources or other resources available,users and user authorization and roles, etc.), troubleshooting of thesystem, resource usage monitoring, bug tracking features, alarms andwarnings associated with events, and other such features. The platform300 may allow navigation between the multiple tools by the use ofdashboards, which may provide simplified entry points to eachapplication and/or feature. As such, report generating system 302 mayhave dashboard entries, which may provide entry points for any of thegenerated reports. The above-described hyperlinks may be used in thedashboard to provide direct access to pre-configured reports. Theentries dashboards may be grouped based on the utility of the data. Forexample, a hyperlink associated with a report chart illustrating thenumber of bugs reported over time may be displayed next to a bugtracking entry point in the dashboard. Interaction with the dashboardmay be flexible and may be used to share data between various users.Furthermore, dashboard entries may be closed, combined, resized, and/ordeleted.

The systems and methods described in the present disclosure may be usedto facilitate obtaining actionable information from data collected andstored as time series datasets. The systems allow streamlinedmanipulation of raw timestamped data that integrates multiple steps,such as importing, collecting, displaying, grouping, and/or performingmathematical operations in a data agnostic manner. As a result,information from not readily available in raw data sources, such may asevents and trends, may be identified. The charts and reports may, forexample, be used to configured alarms or notifications automatically. Incertain embodiments, reports may generate actionable information thatmay be used to adjust behavior automatically. As an example, if anautomated report related to sales may generate a notification related toa long-term drop in sales across an organization. As another example, anautomated report may provide information on product stocks, and mayautomatically create or adjust purchase orders.

The specific embodiments described above have been shown by way ofexample, and it should be understood that these embodiments may besusceptible to various modifications and alternative forms. It should befurther understood that the claims are not intended to be limited to theparticular forms disclosed, but rather to cover all modifications,equivalents, and alternatives falling within the spirit and scope ofthis disclosure.

The techniques presented and claimed herein are referenced and appliedto material objects and concrete examples of a practical nature thatdemonstrably improve the present technical field and, as such, are notabstract, intangible or purely theoretical. Further, if any claimsappended to the end of this specification contain one or more elementsdesignated as “means for [perform]ing [a function] . . . ” or “step for[perform]ing [a function] . . . ” it is intended that such elements areto be interpreted under 35 U.S.C. 112(f). However, for any claimscontaining elements designated in any other manner, it is intended thatsuch elements are not to be interpreted under 35 U.S.C. 112(f).

What is claimed is:
 1. A system, comprising: a non-transitory memory;and one or more hardware processors configured to execute instructionsstored on the non-transitory memory to perform operations, theoperations comprising: determining a first set of grouped metricsassociated with a first table of a set of tables, wherein the firsttable of the set of tables comprises a set of grouped metrics, andwherein the set of grouped metrics is associated with a plurality oftime series datasets; displaying, via an electronic display, a pluralityof visualization templates and a first input field for selecting onegrouped metric of the first set of grouped metrics associated with thefirst table; receiving, via the first input field, a first selectionindicative of a first grouped metric of the first set of groupedmetrics; determining a set of transform operations for the first groupedmetric in response to receiving the first selection; receiving a secondselection indicative of a transform operation from the set of transformoperations, wherein each transform operation of the set of transformoperations is configured to perform a mathematical operation on adataset that corresponds to the first grouped metric; receiving a thirdselection of a visualization template of the plurality of visualizationtemplates, wherein the plurality of visualization templates is updatedin response to receiving the first selection, the second selection, thethird selection, or any combination thereof; generating a time seriesreport based on the first grouped metric, the transform operation, andthe visualization template; and displaying the time series report viathe electronic display.
 2. The system of claim 1, wherein the first setof group metrics corresponds to different types of data stored in thefirst table.
 3. The system of claim 1, wherein the plurality ofvisualization templates is determined based on the type of data of thefirst table.
 4. The system of claim 1, wherein the operations comprise:receiving a request to create a hyperlink associated with the firstselection, the second selection, the third selection, or any combinationthereof, wherein the hyperlink is configured to recreate the time seriesreport using one or more selections received prior to the firstselection, the second selection, the third selection or any combinationthereof that corresponds to the hyperlink.
 5. The system of claim 1,comprising a time metric database configured to store the set of tables.6. The system of claim 1, wherein the plurality of visualizationtemplates comprises a line chart template, a stick chart template, a barchart template, an area chart template, a spline chart template, or atime-step chart template, or any combination thereof.
 7. The system ofclaim 1, wherein the operations comprise dynamically displaying a userinterface element for receiving a parameter associated with thetransform operation in response to receiving the second selection. 8.The system of claim 1, wherein the operations comprise dynamicallydisplaying a second set of transform operations in response to receivingthe second selection.
 9. The system of claim 1, wherein the set oftransform operations comprises average, minimize, maximize, count, sum,log, median, standard deviation, envelope, top, bottom, add, subtract,multiply, divide, interpolate, percentiles, resample, filter, partition,or any combination thereof.
 10. A non-transitory computer-readablemedium, comprising computer-executable instructions that, when executedby one or more processors, cause the one or more processors to performoperations comprising: determining a first set of grouped metricsassociated with a first table of a set of tables, wherein the firsttable of the set of tables comprises a set of grouped metrics, andwherein the set of grouped metrics is associated with a plurality oftime series datasets; displaying, via an electronic display, a pluralityof visualization templates and a first input field for selecting onegrouped metric of the first set of grouped metrics associated with thefirst table; receiving, via the first input field, a first selectionindicative of a first grouped metric of the first set of groupedmetrics; determining a set of transform operations for the first groupedmetric in response to receiving the first selection; receiving a secondselection indicative of a transform operation from the set of transformoperations, wherein each transform operation of the set of transformoperations is configured to perform a mathematical operation on adataset that corresponds to the first grouped metric; receiving a thirdselection of a visualization template of the plurality of visualizationtemplates, wherein the plurality of visualization templates is updatedin response to receiving the first selection, the second selection, thethird selection, or any combination thereof; generating a time seriesreport based on the first grouped metric, the transform operation, andthe visualization template; and displaying the time series report viathe electronic display.
 11. The non-transitory computer-readable mediumof claim 10, comprising a relational database configured to store theset of tables.
 12. The non-transitory computer-readable medium of claim10, wherein the computer-executable instructions that, when executed byone or more processors, cause the one or more processors to performoperations comprising retrieving the set of tables from a data source,wherein the data source comprises a plurality of files.
 13. Thenon-transitory computer-readable medium of claim 10, wherein theplurality of visualization templates is determined based on a type ofdata of the first table.
 14. A method to dynamically configure a timeseries report, comprising: determining, via a processor, a first set ofgrouped metrics associated with a first table of a set of tables,wherein the first table of the set of tables comprises a set of groupedmetrics, and wherein the set of grouped metrics is associated with aplurality of time series datasets; displaying, via an electronicdisplay, a plurality of visualization templates and a first input fieldfor selecting one grouped metric of the first set of grouped metricsassociated with the first table; receiving, via the first input field, afirst selection indicative of a first grouped metric of the first set ofgrouped metrics; determining, via the processor, a set of transformoperations for the first grouped metric in response to receiving thefirst selection; receiving, via the processor, a second selectionindicative of a transform operation from the set of transformoperations, wherein each transform operation of the set of transformoperations is configured to perform a mathematical operation on adataset that corresponds to the first grouped metric; receiving, via theprocessor, a third selection of a visualization template of theplurality of visualization templates, wherein the plurality ofvisualization templates is updated in response to receiving the firstselection, the second selection, the third selection, or any combinationthereof; generating, via the processor, the time series report based onthe first grouped metric, the transform operation, and the visualizationtemplate; and displaying, via the processor, the time series report viathe electronic display.
 15. The method of claim 14, wherein the methodcomprises: receiving a request to create a hyperlink associated with thefirst selection, the second selection, the third selection, or anycombination thereof, wherein the hyperlink is configured to recreate thetime series report using one or more selections received prior to thefirst selection, the second selection, the third selection, or anycombination thereof that corresponds to the hyperlink.
 16. The method ofclaim 14, comprising a time metric database configured to store the setof tables.
 17. The method of claim 14, wherein the plurality ofvisualization templates is determined based on a type of data of thefirst table.
 18. The method of claim 14, wherein the plurality ofvisualization templates comprises a line chart template, a stick charttemplate, a bar chart template, an area chart template, a spline charttemplate, or a time-step chart template, or any combination thereof. 19.The method of claim 14, comprising: determining, via the processor, asecond set of grouped metrics associated with the first table;receiving, via the processor, a fourth selection of a second groupedmetric of the second set of grouped metrics; and generating, via theprocessor, the time series report based on the first grouped metric andthe second grouped metric.
 20. The method of claim 14, comprising:receiving a change to the first selection, the second selection, thethird selection, or any combination thereof, and dynamically updatingthe time series report in response to receiving the change.